39 research outputs found
Statistical Assertions for Validating Patterns and Finding Bugs in Quantum Programs
In support of the growing interest in quantum computing experimentation,
programmers need new tools to write quantum algorithms as program code.
Compared to debugging classical programs, debugging quantum programs is
difficult because programmers have limited ability to probe the internal states
of quantum programs; those states are difficult to interpret even when
observations exist; and programmers do not yet have guidelines for what to
check for when building quantum programs. In this work, we present quantum
program assertions based on statistical tests on classical observations. These
allow programmers to decide if a quantum program state matches its expected
value in one of classical, superposition, or entangled types of states. We
extend an existing quantum programming language with the ability to specify
quantum assertions, which our tool then checks in a quantum program simulator.
We use these assertions to debug three benchmark quantum programs in factoring,
search, and chemistry. We share what types of bugs are possible, and lay out a
strategy for using quantum programming patterns to place assertions and prevent
bugs.Comment: In The 46th Annual International Symposium on Computer Architecture
(ISCA '19). arXiv admin note: text overlap with arXiv:1811.0544
Quantum rejection sampling
Rejection sampling is a well-known method to sample from a target
distribution, given the ability to sample from a given distribution. The method
has been first formalized by von Neumann (1951) and has many applications in
classical computing. We define a quantum analogue of rejection sampling: given
a black box producing a coherent superposition of (possibly unknown) quantum
states with some amplitudes, the problem is to prepare a coherent superposition
of the same states, albeit with different target amplitudes. The main result of
this paper is a tight characterization of the query complexity of this quantum
state generation problem. We exhibit an algorithm, which we call quantum
rejection sampling, and analyze its cost using semidefinite programming. Our
proof of a matching lower bound is based on the automorphism principle which
allows to symmetrize any algorithm over the automorphism group of the problem.
Our main technical innovation is an extension of the automorphism principle to
continuous groups that arise for quantum state generation problems where the
oracle encodes unknown quantum states, instead of just classical data.
Furthermore, we illustrate how quantum rejection sampling may be used as a
primitive in designing quantum algorithms, by providing three different
applications. We first show that it was implicitly used in the quantum
algorithm for linear systems of equations by Harrow, Hassidim and Lloyd.
Secondly, we show that it can be used to speed up the main step in the quantum
Metropolis sampling algorithm by Temme et al.. Finally, we derive a new quantum
algorithm for the hidden shift problem of an arbitrary Boolean function and
relate its query complexity to "water-filling" of the Fourier spectrum.Comment: 19 pages, 5 figures, minor changes and a more compact style (to
appear in proceedings of ITCS 2012